<html>
    <body>
        <h2><font face="helvetica, arial">Offline-MapMatching</font></h2>
        <p>This plugin matches a trajectory as a point layer with a network as a linestring layer based on a Hidden-Markov-Model and the Viterbi algorithm. There are also routines for preprocessing the data to improve the computation time for the map matching.</p>
        <h4><font face="helvetica, arial">Network-Layer:</font></h4>
        <p><font size=3 face="helvetica, arial">This combobox shows all visible layers of the
        current QGIS project with the geometry type LINESTRING. The network, needed to match the trajectory on it, shall be selected.
        It is recommended, that
        this layer should be a clean graph following a node-edge-model, i.e. different lines
        should only touch other lines, never cross them. You can get souch a clean graph e.g.
        by running the PostGIS function "CreateTopology".</font></p>
        <h4><font face="helvetica, arial">Trajectory-Layer:</font></h4>
        <p><font size=3 face="helvetica, arial">The combobox shows all visible layers of the
        current QGIS project with the geometry type POINT.
        The trajectory, which will be matched with the network, shall be selected.</font></p>
        <h4><font face="helvetica, arial">Trajectory-ID:</font></h4>
        <p><font size=3 face="helvetica, arial">The combobox shows all fields of the chosen trajectory layer.
        The selected field will be added to the result features, so that the vertices of the result layer 
        can be referred to the points of the trajectory.</font></p>
        <h4><font face="helvetica, arial">CRS of output layer (EPSG):</font></h4>
        <p><font size=3 face="helvetica, arial">Insert the EPSG code, which should be used for the result layer.
        It is recommended to insert the CRS of the network and trajectory layer (both layer should have the same CRS).
        It is also recommended to use a metric CRS.</font></p>
        <h4><font face="helvetica, arial">Maximum Search Distance [m]:</font></h4>
        <p><font size=3 face="helvetica, arial">The maximum distance to find points on the network for each trajectory point.
            It is mandatory, that this value is greater oder equal than the highest shortest distance between all trajectory points
            and the whole network. This setting has a big influence on the computing time. Go to the
            <a href="https://github.com/jagodki/Offline-MapMatching">repository on GitHub</a> for further information
            about this setting.</font></p>
        <h4><font face="helvetica, arial">Standard Deviation:</font></h4>
        <p><font size=3 face="helvetica, arial">The standard deviation of the distance between the positions from the
        trajectory and their possible positions on the network. It will be assumed, that the points of the trajectory 
        and their possible positions are normal distributed. A larger value represents less trust in the measurement.
        Go to the <a href="https://github.com/jagodki/Offline-MapMatching">repository on GitHub</a> for
        additonal information about this setting.</font></p>
        <h4><font face="helvetica, arial">Expected Value:</font></h4>
        <p><font size=3 face="helvetica, arial">The expected distance between the positions from the
        trajectory and their possible positions on the network. It is recommended to choose the value 0, i.e.
        ideally, the trajectory points should be on the network, if the accuracy of the coordinates would be 100%.</font></p>
        <h4><font face="helvetica, arial">Transition Weight:</font></h4>
        <p><font size=3 face="helvetica, arial">A weight for the calculation of the difference between the distances of two following trajectory points
        and their corresponding points on the network. A larger value represents more tolerance of non-direct routes.
        Go to the <a href="https://github.com/jagodki/Offline-MapMatching">repository on GitHub</a> for
        additonal information about this setting.</font></p>
        <hr>
        <p><font size=3 face="helvetica, arial"><h4>The plugin runs the following tasks:</h4>
        read the input layers<br><br>
        calculate candidate points for each trajectory point using the maximum search distance and create a graph of candidates<br><br>
        calculate the probability for each candidate point to be emitted by the correpsonding trajectory point<br><br>
        calculate the similarity of the transitions compared to the trajectory points<br><br>
        find the best candidates using Viterbi algorithm<br><br>
        create a layer of linestrings using this candidates</font></p>
        <hr>
        <p><font size=3 face="helvetica, arial">A detailed description about the algorithm is provided
        in the <a href="https://github.com/jagodki/Offline-MapMatching">README document</a> of the project on GitHub.</font></p>
    </body>
</html>